#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctime>
#include<sys/timerfd.h>
#include<sys/select.h>
#include<unistd.h>
int main()//创建计时器
{
int timefd=timerfd_create(CLOCK_MONOTONIC,0);//相对时间，默认阻塞属性0。返回值是超时多少次
if(timefd<0)
{
    perror("timefd create failed\n");
    return -1;
}
struct itimerspec itme;
//第一次超时间隔
itme.it_value.tv_sec=1;
itme.it_value.tv_nsec=0;
//第一次往后的超时间隔
itme.it_interval.tv_sec=3;
itme.it_interval.tv_nsec=0;

 timerfd_settime(timefd,0,&itme,NULL);//启动计时器
while(1)//由于一直没有读到数据timefd一直处于阻塞，
//一段时间内经过设置的sec间隔多少次表示超时多少次现在打印出来
{
    uint64_t tmp;
int ret=read(timefd,&tmp,8);
if(ret<0)
{
    perror("ret failed\n");
    return -1;
}
printf("超时了 %ld次\n",tmp);
}
close(timefd);
return 0;
}